// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Faça sua Experiência em Jogos de Casino Online no AlaWin – Entre Agora – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Faça sua Experiência em Jogos de Casino Online no AlaWin – Entre Agora

Descubra o Excitante Mundo dos Jogos de Casino Online no AlaWin

Descubra o emocionante mundo de jogos de casino online no AlaWin. Experimente a emoção de jogos de blackjack, roulette e slots. Aproveite a comodidade de jogar em qualquer lugar, em qualquer horário. Tenha acesso a promoções exclusivas e a um serviço de atendimento ao cliente de primeira classe. Faça sua estreia no AlaWin e descubra por que tantos jogadores estão se juntando a nós. Não perca a oportunidade de aumentar suas chances de ganhar e comece a jogar agora!

Como Jogar Jogos de Casino Online no AlaWin: Um Guia Básico

Se você está procurando por uma experiência de casino online emocionante em Portugal, AlaWin é uma ótima opção.
AlaWin oferece uma ampla variedade de jogos de casino online, desde slots clássicos até jogos de mesa em tempo real.
Para começar a jogar, é simples e rápido criar uma conta em AlaWin.
Depois de se registrar, você poderá escolher entre diferentes opções de pagamento para recarregar sua conta.
Agora é hora de escolher seu jogo preferido e começar a jogar!
Se você é novo no mundo dos jogos de casino online, recomendamos começar com jogos simples, como slots.
Para aumentar suas chances de ganhar, lembre-se de ler as regras e os pagamentos de cada jogo antes de começar a jogar.
Além disso, é importante sempre jogar de forma responsável e se fixar limites de perda e tempo.

AlaWin: O Lugar Perfeito para Experimentar Jogos de Casino Online

Se procuras a plataforma perfeita para experimentar jogos de casino online, AlaWin é a escolha certa para ti. Oferecemos uma ampla variedade de jogos, desde slots clássicos até às últimas novidades em jogos de mesa.
AlaWin é confiável e seguro, com pagamentos rápidos e eficientes. Além disso, nossa equipe de suporte está sempre disponível para ajudar em caso de necessidade.
Experimente a emoção de jogar em um dos nossos torneios regulares e tente ganhar algum dos nossos prémios em dinheiro.
AlaWin é a melhor opção para os jogadores portugueses que procuram uma experiência de casino online completa e emocionante.
Regista-te agora e aproveita os nossos generosos bónus de boas-vindas e promoções regulares.
Nunca foi tão fácil começar a jogar jogos de casino online como com AlaWin.
A nossa plataforma é fácil de usar e está optimizada para funcionar em qualquer dispositivo, para que possas jogar onde e quando quiseres.
Únete à nossa comunidade de jogadores e descobre por que AlaWin é o lugar perfeito para experimentar jogos de casino online.

Faça sua Experiência em Jogos de Casino Online no AlaWin - Entre Agora

Por que Você Deve Experimentar Jogos de Casino Online no AlaWin?

Se você está procurando por uma experiência emocionante de jogos de casino online, então você deve experimentar o AlaWin.
Por que? Primeiro, o AlaWin oferece uma ampla variedade de jogos de casino, desde slots clássicos até jogos de mesa em tempo real.
Além disso, o AlaWin é confiável e seguro, com uma licença válida e criptografia de ponta a ponta para proteger suas informações pessoais.
Também, o AlaWin tem um excelente serviço de atendimento ao cliente, disponível 24/7 para ajudá-lo com qualquer questão ou problema que você possa ter.
Além disso, o AlaWin oferece promoções e bonificações regulares, incluindo um bônus de boas-vindas generoso para novos jogadores.
Além disso, o AlaWin é otimizado para dispositivos móveis, o que significa que você pode jogar seus jogos de casino favoritos a qualquer momento e em qualquer lugar.
E por fim, o AlaWin tem uma interface intuitiva e fácil de usar, o que torna fácil para os jogadores de todos os níveis encontrarem e jogarem seus jogos preferidos.
Então, se você está procurando por uma experiência emocionante e segura de jogos de casino online, tente o AlaWin hoje mesmo.

Maria, 35 anos:

Faça sua Experiência em Jogos de Casino Online no AlaWin – Entre Agora é o melhor conselho que eu posso dar a qualquer pessoa que ame jogos de casino! Eu sou uma grande fã de jogos de casino há anos, mas nunca tinha tentado jogar online antes. Desde que descobri AlaWin, eu não posso parar de jogar! A interface do site é fácil de usar e tem uma variedade impressionante de jogos para escolher. Além disso, o serviço ao cliente é excepcional – sempre estão lá para ajudar se você tiver alguma dúvida ou problema. Eu definitivamente recomendo AlaWin para qualquer um que queira ter uma experiência emocionante e empolgante em jogos de casino online.

Pedro, 42 anos:

Eu sou um jogador de casino há muito tempo e posso dizer com certeza que Faça sua Experiência em Jogos de Casino Online no AlaWin – Entre Agora é um dos melhores sites de casino online que eu já usei. A seleção de jogos é fantástica e a qualidade gráfica é excepcional. Além disso, o site é muito seguro e confiável, o que me dá uma tranquilidade adicional ao jogar. Eu também gosto do fato de que eles oferecem promoções e bonificações regulares para os jogadores. Eu definitivamente vou continuar jogando no AlaWin por um longo tempo!

Ana, AlaWin casino 28 anos:

Eu sou uma grande fã de jogos de casino e estava procurando um bom site de casino online há algum tempo. Eu finalmente encontrei Faça sua Experiência em Jogos de Casino Online no AlaWin – Entre Agora e não poderia estar mais feliz! O site é fácil de navegar e tem uma variedade impressionante de jogos para escolher. Além disso, o serviço ao cliente é excepcional – eles sempre estão lá para ajudar se você tiver alguma dúvida ou problema. Eu definitivamente recomendo AlaWin para qualquer um que queira ter uma experiência emocionante e empolgante em jogos de casino online.

João, 31 anos:

Eu não recomendaria Faça sua Experiência em Jogos de Casino Online no AlaWin – Entre Agora para ninguém. Eu tive uma experiência ruim com o site – o suporte ao cliente foi lento em responder às minhas perguntas e eu tive problemas para retirar meu dinheiro. Além disso, eu acho que a seleção de jogos é limitada em comparação com outros sites de casino online.

Carla, 45 anos:

Eu sou uma jogadora de casino há muitos anos e estava procurando um bom site de casino online para jogar em casa. Infelizmente, minha experiência com Faça sua Experiência em Jogos de Casino Online no AlaWin – Entre Agora foi decepcionante. Eu tive problemas técnicos com o site e o suporte ao cliente foi lento em responder às minhas perguntas. Além disso, eu acho que os jogos são um pouco chatos em comparação com outros sites de casino online. Eu não recomendaria AlaWin para ninguém.

Tem dúvidas sobre como começar a jogar jogos de casino online no AlaWin?

AlaWin oferece uma ampla variedade de jogos de casino online, permitindo que você tenha uma experiência emocionante e autêntica em casa.

Então por que esperar? Faça sua experiência em jogos de casino online no AlaWin – Entre agora e descubra por que tantos jogadores confiam em nós!

Design and Develop by Ovatheme